package com.itzhoun.simpleFactory;

import com.itzhoun.CheesePizza;
import com.itzhoun.GreakPizza;
import com.itzhoun.PepperPizza;
import com.itzhoun.Pizza;

/**
 * 简单工厂模式
 * @author 周楠
 * @Date 2023/01/12/上午 10:07
 */
public class SimplePizzaFactory {

    /**
     * 举例： 这里有一个pizza工厂，一共生成三种类型pizza: cheese, pepper,greak三种类型pizza
     * 简单工厂存在的问题很明显，类的创建依赖于工厂类，如果想要拓展程序，则需要去修改createPizza()方法，这违背开闭原则
     *
     */

    public Pizza createPizza(String type){
        Pizza pizza = null;
        switch (type){
            case "cheese" : pizza = new CheesePizza(); break;
            case "greek" : pizza = new GreakPizza(); break;
            case "pepper" : pizza = new PepperPizza(); break;
            default: return null;
        }
        return pizza;

    }
}
